namespace SharpGraphT.Graph; 

public interface IIntrusiveEdgesSpecifics<TV, TE> {
    TV GetEdgeSource(TE e);
    TV GetEdgeTarget(TE e);
    bool Add(TE e, TV sourceVertex, TV targetVertex);
    bool ContainsEdge(TE e);
    IReadOnlySet<TE> EdgeSet { get; }
    void Remove(TE e);
    double GetEdgeWeight(TE e);
    void SetEdgeWeight(TE e, double weight);
}